class NiceRuby

  def self.watch(&block)
    puts self.new.instance_eval(&block);
  end

  def method_missing(word, *args)
    str = word.to_s + " " + args.join(" ");
    str << yield if block_given?;
    this_method = self.method(:method_missing).to_proc;
    (class << str; self; end).send(:define_method, :method_missing) do |word, *args|
      self + ". " + this_method.call(word, *args)
    end
    str;
  end

end

p NiceRuby.watch{ko.kiu terste.lui}